1. Field of Invention
This invention relates to computer systems, and more particularly to the detection and initialization of computer system components.
2. Description of Related Art
Computer systems typically include hardware dependent software which must be valid when electrical power is applied to the systems. Such software includes instructions which initialize system hardware components (e.g., interrupt controller, direct memory access controller, and serial port) and provide a basic input and output system (BIOS). The BIOS provides an interface between system software and hardware (e.g., core logic chip set, graphics controller, keyboard, and disk drives). Computer system software programs typically access system hardware components using the BIOS.
A typical computer system includes a microprocessor which functions as a central processing unit (CPU). The microprocessor is coupled to chip set logic which functions as an interface between the microprocessor and a system memory configured to store data, and between the microprocessor and an expansion bus adapted for coupling to one or more peripheral devices. During system initialization (i.e., at "boot" time), the BIOS must search for and detect the presence and capabilities of various system components, including the chip set logic. Computer system components are typically assigned address ranges within the set of all addresses which may be produced by the CPU (i.e., the memory space of the CPU). The BIOS typically detects the presence of a system component by reading a recognized value from an address within the assigned address range. The address is typically the address of an "addressable" of "memory-mapped" configuration register containing, for example, an identification (ID) code assigned to the manufacturer of the component. Additional addressable configuration registers, located at other known addresses, contain identification codes which specifically identify the component (e.g., device ID, revision ID, etc.). The specific identity of a component reveals its operational capabilities (i.e., its "features") and determines how the component may be configured to operate within the computer system.
Data transfers between computer system components are typically synchronized by a bus clock signal. Circuitry to allow data transfers between components on both the `0` to `1` and `1` to `0` transitions of the bus clock signal (i.e., both "edges" of the bus clock signal) are well known in the art. In order for a CPU and chip set logic to transfer data on both edges of a bus clock signal, the CPU and chip set logic must both include the required support circuitry, and the support circuitry of both devices must be operating at the same time. At system boot time, the BIOS software typically checks for the presence of the requisite support circuitry in the CPU and the chip set logic. If the CPU and chip set logic both have the required support circuitry, the BIOS configures the CPU and the chip set logic such that the support circuits of both components are enabled.
Due to the increasing complexity of modern computer systems, BIOS configuration of computer systems at boot time is taking longer and longer. It would thus be advantageous to have a hardware-based system and method for detecting the presence of circuitry supporting data transfers on both edges of a bus clock signal within the CPU and the chip set logic of a computer system. If both the CPU and the chip set logic include the required circuitry, the desired system would configure the CPU and the chip set logic such that the support circuits within both components are enabled. The hardware-based system and method would be much faster than BIOS software, thus reducing the amount of time required to initialize a computer system at system boot time.